Thực đơn
Dạng chuẩn 3 Ví dụXem xét quan hệ định nghĩa vài loại phụ tùng ô tô được mô tả như sau:
Part number (primary key) | Manufacturer name | Manufacturer address |
---|---|---|
1000 | BMW | Park Avenue |
1001 | Mitsubishi | Lincoln Street |
1002 | BMW | Park Avenue |
Trong trường hợp này địa chỉ của nhà sản xuất (manufacturer address) không thuộc về quan hệ, do thông tin này chỉ mô tả về nhà sản xuất hơn là thông tin về phụ tùng. Do vậy, thông tin về địa chỉ của nhà sản xuất cần được chuyển sang một bảng khác với các thuộc tính:
Manufacturer name (primary key) | Manufacturer address |
---|---|
BMW | Park Avenue |
Mitsubishi | Lincoln Street |
...và bảng dữ liệu ban đầu được sửa thành:
Part number (primary key) | Manufacturer name |
---|---|
1000 | BMW |
1001 | Mitsubishi |
1002 | BMW |
Vấn đề của bảng dữ liệu không ở dạng chuẩn 3 là với mọi tên của nhà sản xuất, ta phải lưu thông tin về địa chỉ, điều này gây ra dư thừa dữ liệu.
Xem xét ví dụ sau:
Order Number (primary key) | Customer Name | Unit Price | Quantity | Total |
---|---|---|---|---|
1000 | David | $35.00 | 3 | $105.00 |
1001 | Jim | $25.00 | 2 | $50.00 |
1002 | Bob | $25.00 | 3 | $75.00 |
Trong trường hợp này cột Total không thuộc về bảng vì Total có thể được suy ra từ việc nhân hai cột Unit Price và Quantity. Để chuyển về dạng chuẩn 3, bỏ cột Total ra khỏi bảng (trong một câu truy vấn dữ liệu, thay vì dùng "SELECT Orders.Total FROM Orders", ta sẽ sử dụng lệnh SELECT UnitPrice * Quantity FROM Orders).
Order Number (primary key) | Customer Name | Unit Price | Quantity |
---|---|---|---|
1000 | David | $35.00 | 3 |
1001 | Jim | $25.00 | 2 |
1002 | Bob | $25.00 | 3 |
Thực đơn
Dạng chuẩn 3 Ví dụLiên quan
Tài liệu tham khảo
WikiPedia: Dạng chuẩn 3 http://www.cs.jcu.edu.au/Subjects/cp1500/1998/Lect... http://databases.about.com/od/specificproducts/a/n... http://www.aw-bc.com/catalog/academic/product/0,11... http://www.dbdebunk.com http://www.marcrettig.com/poster/ http://support.microsoft.com/kb/283878 http://dev.mysql.com/tech-resources/articles/intro... http://phlonx.com/resources/nf3/ http://www.troubleshooters.com/littstip/ltnorm.htm... http://www.utexas.edu/its/windows/database/datamod...